#3_2集合类型

s1 = set([1,2,3,"a",'b'])

print(s1)

s2 = s1.copy() #返回浅copy
print(s2)
s1.add('d')
print(s1,s2) # s2的项并没有增加 不知道上面浅copy是什么意思

#dict

d = {}
d1 = d.fromkeys(['a','b','c'],'哈哈') #返回序列中的键,每个键的值都是 '哈哈'
print(d1.get('a')) #根据键获取值,没有返回None

for k in d1.items():
	print(k)

print(d1.keys())

d2 = {"a":1,"b":2,"c":3}

reverse_d1 = {v:k for k,v in d2.items()} #得到一个key-value和字典d2相反的字典
print(reverse_d1)

from collections import OrderedDict #有序字典

import random

od = OrderedDict([('a','哈哈'),('d','我是'),('b','啦啦')])

print(od)

a1 = [1,2,3,4,5,6]

print(random.sample(a1,3)) #随机从 a1 中获取 3 个数 并且不重复
print(random.choice(a1)) #随机抽取一项

#zip函数传入多个迭代,然后一个迭代,该迭代中包含多个迭代子,
#每个迭代子都是一个tuple,第一个tuple中的第一个元素是传入的第一个迭代的第一个元素,以此类推
#相当于返回一个二维数组 
for i in zip(range(4,10),range(3),range(6)):
	print(i)

'''
上面循环输出:
(4,0,0) 即是: range(4,10)[0],range(3)[0],range(6)[0]
(5,1,1) 即是: range(4,10)[1],range(3)[1],range(6)[1]
(6,2,2)  .....
'''

a1 = [1,2,3,4,5,6]
a2 = [7,8,9,10]
a3 = a1+a2 #输出a3将会=[1,2,3,4,5,6,7,8,9,10]
t1 = tuple(a3)
print('t1=',t1) #将会输出(1,2,3,4,5,6,7,8,9,10)
print(isinstance(t1,tuple)) #将会输出 True




